Polygons are used in computer graphics to compose objects. The polygons are generally defined by geometric data. The geometric data may include two different data sets. The first data set, which may be referred to as vertex attribute data, specifies vertices for the polygons. The vertex attribute data may also include additional data items for the polygons. The second data set may include connectivity information for the vertices. The connectivity information specifies which vertices form the different polygons for a given object. In illustration, an object such as a ball may be represented using a plurality of polygons referred to as a mesh. To create a visual effect such as motion, features such as shape, location, orientation, texture, color, brightness, etc. of the polygons forming the ball are modified over time.
In generating visual effects, geometric graphics data may be operated upon by a graphics processing unit (GPU) multiple times. Consider an example where an object such as a ball moves through space. The polygons forming the ball may be continually operated upon by the GPU to produce a motion effect for the ball. Among other operations, for example, the coordinates of the vertices of the polygons forming the ball may be continually modified to produce the motion effect. Accordingly, the geometric graphics data flows through the graphics pipeline of the GPU multiple times in order to support such processing. A graphics pipeline refers to the processing or sequence of steps performed by a GPU to render a two-dimensional raster representation of a three dimensional scene.
The GPU moves graphics data from memory and through the graphics pipeline. The geometric graphics data, including the vertex attribute data for the polygons, consumes a significant amount of the memory bandwidth. Given the demand for high quality graphics across various applications including games, the already high memory bandwidth requirements of graphics applications are likely to increase.